//
//  main.swift
//  5.@autoclosure和??
//
//  Created by 左忠飞 on 2021/8/11.
//

import Foundation

//@autoclosure 做的事情就是把一句表达式自动地封装成一个闭包(closure)。这样有时候在 语法上看起来就会非常漂亮。

//比如我们有一个方法接受一个闭包，当闭包执行的结果为 true 的时候进行打印
func logIfTrue(_ predicate:() -> Bool) {
    if predicate() {
        print("true")
    }
}

//使用起来麻烦,不够清晰
logIfTrue {
    2 > 1
}


//使用 @autoclosure 来重构
func logIfTrue2(_ predicate:@autoclosure () -> Bool) {
    if predicate() {
        print("true")
    }
}

logIfTrue2( 2 > 1 )

